Redundant Arrays of Independent Disks (RAID) array includes an array of disks, which are viewed by a host, such as a computer system, as a single disk. A RAID array is a scheme for storing the same data in different places (thus, redundantly) on multiple hard disks. By placing data on multiple disks, input/output (I/O) operations can overlap in a balanced way, therefore, improving performance. Since multiple disks increase the mean time between failure (MTBF), storing data redundantly also increases fault-tolerance.
A RAID storage system typically includes a controller and an array of disks. A controller may be hardware or software tool for providing an interface between the host and the array. The controller manages the array of disks for storage and retrieval and can view the disks of the RAID separately. The controller may be configured to access the array of disks as defined by a particular “RAID level.”
The RAID level specifies how the data is distributed across the disk drives and how error correction is accomplished. There are numerous RAID level architectures.
As RAID level architectures become more commonplace, users may desire to convert from one RAID level architecture to another or adjust the number of disk arrays within an existing architecture. There could be many reasons for performing such an operation, such as for performance, or change in capacity.
However, adjusting the disk array or changing RAID levels may be difficult after the array is operational and contains useful data. In known arrangements, the user is denied access to all the data on the array, the RAID array is then taken off-line, and the data thereon is reconfigured to a back-up medium. The array is then reconfigured in a desired format, and the data from the back-up medium is written back onto the array. For example, U.S. Pat. No. 5,524,204 describes a method for dynamically expand a RAID-5 system. This method is limited only to the expansion of an RAID-5 system and does not discussion contraction or its application to other types of RAID systems.